Video compression has always been an extremely difficult task that pushes the computational limits of the available hardware. The compression techniques implemented and adopted at any given time depend as much on the algorithmic science as on the practical amount of processing that can be applied to the task.
MPEG-2 has been a viable compression standard for more than a decade. In that time, the science of video compression has advanced, as has the power of computational platforms. This has led to a newly developed international standard, known as ITU-T Rec. H.264 and ISO/IEC MPEG-4 part 10. This standard represents a significant improvement over MPEG-2. The H.264 standard, also known as AVC, offers greatly improved compression efficiency, typically on the order of two to three times the efficiency of MPEG-2. But this efficiency comes at the price of processing complexity. The complexity of a typical H.264 encoder is 10 to 20 times the processing capacity of an MPEG-2 encoder.
To increase the raw useable amount of processing, the task has often been decomposed into serial or parallel operations divided up among several machines. This basic approach has been successfully implemented for MPEG-2 video compression, and specifically for HD MPEG-2 video compression. However, extending this approach to AVC reveals several unique problems that are neither obvious nor easily solved. This is particularly apparent if the AVC “Main” profile is used. Four different profiles, or levels of complexity, are contemplated by AVC. The minimal feature set is termed the Baseline profile, the Main and Extended profiles offer additional features, and the High profile offers the most robust set of features.
As was true for MPEG-2, a viable approach to video encoding in AVC is to use multiple processors, in concert, to divide the task. One of these approaches is to divide each original frame of video into several slices and assign a separate machine to encode each slice stream. Again, this approach was successfully adopted for early MPEG-2 HD video encoders. However, doing so in AVC Main-Profile or High-Profile, without the use of multiple Motion Constrained Slice Groups which are only allowed in the Extended-Profile feature set, requires the solution of many problems not previously identified or obvious.
This present invention provides a solution to these encoding problems, and describes a machine that implements solutions to these problems. Additionally, this present invention provides a companion decoder that can recognize the encoding techniques used in the present invention, and optimize its performance given the incorporated techniques.